home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / p4 / p4-1_2b.lha / p4-1.2b / lib / p4_macros.h < prev    next >
C/C++ Source or Header  |  1993-02-06  |  1KB  |  54 lines

  1. #define get_proc_info(id) (&(p4_global->proctable[id]))
  2.  
  3. #ifndef FD_ZERO
  4. #    define FD_ZERO(ptr) ((ptr)->fds_bits[0]) = 0;
  5. #    define FD_SET(fd,ptr) ((ptr)->fds_bits[0]) |= 1 << fd;
  6. #    define FD_ISSET(fd,ptr) (((ptr)->fds_bits[0]) & (1 << fd))
  7. #endif
  8.  
  9. #ifdef P4SYSV
  10. /*
  11.  * Select uses bit masks of file descriptors in longs.
  12.  * These macros manipulate such bit fields (the filesystem macros use chars).
  13.  * FD_SETSIZE may be defined by the user.
  14.  */
  15.  
  16. #ifndef FD_SETSIZE
  17. #define FD_SETSIZE      256
  18. #endif
  19.  
  20. #ifndef howmany
  21. #define howmany(x, y)   (((x)+((y)-1))/(y))
  22. #endif
  23.  
  24. #ifndef NFDBITS
  25. typedef long    fd_mask;
  26. #define NFDBITS (sizeof(fd_mask) * 8)           /* bits per mask */
  27. typedef struct fd_set {
  28.     fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
  29. } fd_set;
  30. #endif
  31.  
  32. #endif
  33.  
  34. #if defined(P4SYSV)
  35. #    ifndef index
  36. #        define index(S,C)        strchr((S),(C))
  37. #    endif
  38. #    ifndef rindex
  39. #        define rindex(S,C)       strrchr((S),(C))
  40. #    endif
  41. #    ifndef bcopy
  42. #        define bcopy(x,y,len)    memcpy((y),(x),(len))
  43. #        define bcmp(x,y,len)     memcmp((y),(x),(len))
  44. #        define bzero(x,len)      memset((x),0,(len))
  45. #    endif
  46. #endif
  47.  
  48. #define SOFTERR (p4_local->soft_errors)
  49.  
  50. #define SYSCALL_P4(RC,SYSCALL)                       \
  51.     do {                                         \
  52.         RC = SYSCALL;                            \
  53.     } while (RC < 0 && errno == EINTR);
  54.